package query;




import java.util.List;

import document.InvertedIndex;



/**
 * 
 * @author severin
 *
 */
public interface Query 
{
	public List<Query> getSubQueries();
	public int getOrder();
	public void process(InvertedIndex i);
	public List<Integer> getResult();
	public void putLeftOperand(Query q);
	public void putRightOperand(Query q);
	public Query rebuildOptimal(InvertedIndex i);
	public Query rebuildWorst(InvertedIndex i);
	public boolean isHomogenious();
	public List<Term> getLeaves();
	/**
	 * Returns true when the result of the query should be ignored. E.g. the query includes only Stopwords.
	 * @return
	 */
	public boolean isNeutralQuery();
	public String getName();
}
